package test3;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;

import javax.imageio.ImageIO;
import javax.swing.*;

public class PannConnexion extends JPanel
{	
	private static final long serialVersionUID = 1L;
	private JButton seConnecter;
	private JLabel email;
	private JTextField emailTexte;
	private JLabel motDePasse;
	private JPasswordField mDpTexte;
	private JButton connexion;
	private JLabel bienvenue;
	private JButton sInscrire;
	private JButton inscription;
	private JLabel nom;
	private JTextField nomTexte;
	private JLabel prenom;
	private JTextField prenomTexte;
	private JLabel sexe;
	private ButtonGroup g;
	private JRadioButton r1,r2;
		
	public void pc()
	{
		FlowLayout flow1=new FlowLayout(FlowLayout.CENTER,200,15);
		setLayout(flow1);
		bienvenue=new JLabel("Bienvenue sur QuickMessage");bienvenue.setForeground(Color.magenta); add(bienvenue);		
		seConnecter=new JButton("Se connecter"); add(seConnecter);
		sInscrire=new JButton("S'inscrire"); add(sInscrire);
		email=new JLabel("Adresse mail :"); email.setForeground(Color.magenta); add(email);
		emailTexte=new JTextField(20); add(emailTexte);
		nom=new JLabel("Nom :"); nom.setForeground(Color.magenta); add(nom);
		nomTexte=new JTextField(20); add(nomTexte);
		prenom=new JLabel("Prenom :"); prenom.setForeground(Color.magenta); add(prenom);
		prenomTexte=new JTextField(20); add(prenomTexte);
		sexe=new JLabel("Sexe :"); sexe.setForeground(Color.magenta); add(sexe);
		r1 = new JRadioButton("Homme",true);                      
		r2 = new JRadioButton("Femme"); 
		g = new ButtonGroup();g.add(r1); g.add(r2);
		add(r1); add(r2); 
		motDePasse=new JLabel("Mot de passe :"); motDePasse.setForeground(Color.magenta); add(motDePasse);
		mDpTexte=new JPasswordField(20); add(mDpTexte);
		connexion=new JButton("Connexion"); add(connexion);
		inscription=new JButton("inscription"); add(inscription);
		
		connexion.setVisible(false);
		inscription.setVisible(false);
		email.setVisible(false);
		emailTexte.setVisible(false);
		motDePasse.setVisible(false);
		mDpTexte.setVisible(false);	
		nom.setVisible(false);
		nomTexte.setVisible(false);
		prenom.setVisible(false);
		prenomTexte.setVisible(false);
		sexe.setVisible(false);
		r1.setVisible(false);
		r2.setVisible(false);
		inscription.setVisible(false);

		//appui sur seConnecter
		seConnecter.addActionListener(new ActionListener() 
		{			
			@Override
			public void actionPerformed(ActionEvent e) 
			{
				email.setVisible(true);
				emailTexte.setVisible(true);
				motDePasse.setVisible(true);
				mDpTexte.setVisible(true);
				connexion.setVisible(true);
				seConnecter.setVisible(false);
				sInscrire.setVisible(false);
			}
		});//fin appui sur seConnecter
		
		
		//appui sur sInscrire
		sInscrire.addActionListener(new ActionListener() 
		{			
			@Override
			public void actionPerformed(ActionEvent e) 
			{
				email.setVisible(true);
				emailTexte.setVisible(true);
				motDePasse.setVisible(true);
				mDpTexte.setVisible(true);
				nom.setVisible(true);
				nomTexte.setVisible(true);
				prenom.setVisible(true);
				prenomTexte.setVisible(true);
				sexe.setVisible(true);
				r1.setVisible(true);
				r2.setVisible(true);
				inscription.setVisible(true);
				sInscrire.setVisible(false);
				seConnecter.setVisible(false);
			}
		});//fin appui sur sInscrire
		
		
		
		//Appui sur le bouton connexion
		connexion.addActionListener(new ActionListener() 
		{
			@Override
			public void actionPerformed(ActionEvent arg0) 
			{
				connexion.setEnabled(false);
				String mail=emailTexte.getText();
				String password=new String(mDpTexte.getPassword());
				
				//connexion à la base de donnée pour vérifier les identifiants
				ConnexionBDD conn=new ConnexionBDD();
				conn.seConnecter();
				String requete="select * from Utilisateur;";

				try {
					conn.setRs(conn.getStmt().executeQuery(requete));

					while(conn.getRs().next())
					{
						if(conn.getRs().getString("email").compareTo(mail)==0)
						{
							if(conn.getRs().getString("mot_de_passe").compareTo(password)==0)
							{
								//lancement de la connexion sur le serveur
								System.out.println("Authentification réussie");
								ConnexionServeur connS=new ConnexionServeur(mail);
								connS.start();
								
								while(connS.connexion!=true)
								{}
								Main.fenC.setVisible(false);
								Main.fenP.setVisible(true);
							}
							else
							{
								JOptionPane.showMessageDialog(null,"Mot de passe incorrect");
								connexion.setEnabled(true);
							}
						}
						else
						{
							JOptionPane.showMessageDialog(null,"Email inexistant");
							connexion.setEnabled(true);
						}
					}
				} catch (SQLException e) {e.printStackTrace();} 

				conn.seDeconnecter();
				System.out.println("deconnexion de la BDD");
			}
		});//fin appui connexion
		
		

		//Appui sur le bouton inscription
		inscription.addActionListener(new ActionListener() 
		{
			@Override
			public void actionPerformed(ActionEvent arg0) 
			{
				inscription.setEnabled(false);
				String mail=emailTexte.getText();
				String password=new String(mDpTexte.getPassword());
				String name=nomTexte.getText();
				String firstName=prenomTexte.getText();
				//String sexe=g.getSelection().toString();
				boolean sex=r1.isSelected();
				int idSexe=0;
				if (sex == true) idSexe=1;	else idSexe=2;
				//connexion à la base de donnée pour enregistrer
				ConnexionBDD conn=new ConnexionBDD();
				conn.seConnecter();
				//requete
				String SQL = " insert into Utilisateur  VALUES('"+mail+"','"+name+"','"+firstName+"','"+password+"','"+idSexe+"',1,1);";
				try {
					conn.getStmt().executeUpdate(SQL);
				} catch (SQLException e) {e.printStackTrace();}	

				

				conn.seDeconnecter();
				System.out.println("deconnexion de la BDD");
				
				seConnecter.setVisible(true);
				sInscrire.setVisible(true);
				connexion.setVisible(false);
				inscription.setVisible(false);
				email.setVisible(false);
				emailTexte.setVisible(false);
				motDePasse.setVisible(false);
				mDpTexte.setVisible(false);	
				nom.setVisible(false);
				nomTexte.setVisible(false);
				prenom.setVisible(false);
				prenomTexte.setVisible(false);
				sexe.setVisible(false);
				r1.setVisible(false);
				r2.setVisible(false);
				inscription.setVisible(false);
			}
		});//fin appui inscription	
		
	}
	
	
	
	public void paintComponent(Graphics g) 
	{
		super.paintComponent(g); 
	
		String fichier = "aa.jpg";		
		BufferedImage im;
		try {
			im = ImageIO.read(new File(fichier));
			g.drawImage(im, 0, 0, 500, 600, null);			
		} catch (IOException e) {e.printStackTrace();}
	}
}
